<?php
/*
	插件页面增删查改
*/
defined('BY_JYA') or exit('error');
global $_RQ,$_AR;
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['plugin_id']){
	$_SESSION['plugin_id']=intval($_RQ['plugin_id']);
}
if(!$_SESSION['plugin_id']){
	exi('请先选择插件！','error');
}
if($_RQ['op']=='list'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$result=cloud_request('plugin.page.list',$params);
	if($result){
			foreach($result['list'] as &$page){
				$page['page_op']=array('action'=>'page_op','query'=>'page_id='.$page['id'],'title'=>'页面功能设置');
				$page['page_event']=array('action'=>'page_event','query'=>'page_id='.$page['id'],'title'=>'页面事件管理');
				$page['edit_code']=array('action'=>'edit_code','op'=>'edit','query'=>'id=/manage/actions/'.$page['name'].'.php');
			}
	}
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			'0'=>array('op'=>'list','title'=>'页面列表'),
			'1'=>array('op'=>'edit','title'=>'添加页面'),
		),
		'list'=>array('data'=>'list','list'=>array(
			array('name'=>'name','title'=>'页面标识','type'=>'string'),
			array('name'=>'title','title'=>'页面名称','type'=>'string'),
			array('name'=>'type','title'=>'页面类型','type'=>'radio','options'=>'types'),
			array('name'=>'page_op','title'=>'页面功能设置','type'=>'href','show'=>array('type',1)),
			array('name'=>'page_event','title'=>'页面事件管理','type'=>'href','show'=>array('type',1)),
			array('name'=>'edit_code','title'=>'编辑代码','type'=>'href'),
		)),
		'search_one'=>array('name'=>'title'),
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='edit'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$id=intval($_RQ['id']);
	if($id){
		$params['id']=$id;
	}
	$result=cloud_request('plugin.page.edit',$params);
	if($result['item']['id']){
		$read=true;
	}else{
		$read=false;
	}
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'desc'=>'设置页面信息',
		'tabs'=>array(
			'0'=>array('op'=>'list','title'=>'页面列表'),
			'1'=>array('op'=>'edit','title'=>'添加页面'),
		),
		'edit'=>array(
			array('type'=>'string','title'=>'页面标识','name'=>'name', 'help'=>'页面标识，支持字母、数字、大小写，必须以字母开头。且不能和已有功能标识重复','read'=>$read),
			array('type'=>'string','title'=>'页面名称','name'=>'title' ),
			array('type'=>'radio','title'=>'页面类型','name'=>'type','options'=>'types', 'help'=>'‘管理端，用户端’的页面设计详情要到《页面功能设置》里面设置，可以实现较复杂的页面！' ),
			array('type'=>'radio','title'=>'生成页面类型','name'=>'leixing','options'=>'leixings','show'=>array('type',array(1,2,)),'help'=>'全模版页面特点为完全有系统页面组件拼接而成，如果需要在生成的页面html文件基础上进行二次开发优化，请选择综合页面文件'),
			array('type'=>'select','title'=>'指定数据表','name'=>'table','options'=>'tables','show'=>array('type',array(4,5))),
			array('type'=>'string','title'=>'列表每页显示数据条数','name'=>'psize','show'=>array('type',4)),
			array('type'=>'switch','title'=>'是否显示ID字段','name'=>'show_id','show'=>array('type',4)),
			array('type'=>'switch','title'=>'是否显示创建时间','name'=>'show_time','show'=>array('type',4)),
			array('type'=>'string','title'=>'页面主op','name'=>'main_op','show'=>array('type',1),'help'=>'当访问页未指定op时执行的动作，可在页面动作设置好之后再设置'),
			array('type'=>'switch','title'=>'是否添加权限控制','name'=>'permission','show'=>array('type',array(1,3,4)) , 'help'=>'如果是管理端页面，设置为是时，操作员访问该页面时，系统会判断操作员是否获得授权。（在添加操作员时可以设置操作员相应权限）</br>如果是用户端页面，设置为是时，用户访问该页面必须先登陆（系统在生成代码时自动添加页面检测代码）'),
			array('type'=>'switch','title'=>'是否在插件首页显示','name'=>'list','show'=>array('type',array(1,3,4)), 'help'=>'如果设置为是。管理端页面将在插件首页显示入口链接按钮，客户端页面将在插件首页显示入口设置'),
			array('type'=>'select','title'=>'标题字段','name'=>'field','show'=>array('type',5),'options'=>'tables[pagedata.item.table][\'fields\']'),
			
			array(
				'type'=>'array',
				'name'=>'fields',
				'title'=>'参数管理',
				'show'=>array('type',3),
				'add_tip'=>'添加一个参数',
				'list'=>array(
					array('type'=>'string','name'=>'name','title'=>'参数标识'),
					array('type'=>'string','name'=>'title','title'=>'参数名称'),
				),'details'=>array(
					array('type'=>'string','name'=>'name','title'=>'参数标识'),
					array('type'=>'string','name'=>'title','title'=>'参数名称'),
					array('type'=>'select','name'=>'leixing','title'=>'参数类型','options'=>'leixing'),
					array('type'=>'string','name'=>'fenlei','title'=>'参数分类','help'=>'同一个分类的参数会放在统一设置选项卡中'),
					array('type'=>'text','name'=>'help','title'=>'帮助信息','help'=>'用于提示用户输入'),
					array('type'=>'text','name'=>'content','title'=>'设置选项信息','help'=>'如果数据类型为单选、多选、状态码类型。请在此设置选项信息，格式为一行一个选项，选项值和选项名称以英文逗号隔开。如果需要从数据库读取数据作为选项。则按以下格式（table,数据表名,筛选字段,字段值来源）其中字段值来源有两种，1表示来自环境参数，2表示来自请求参数'),
				)
			),
			array(
				'type'=>'array',
				'name'=>'list_fields',
				'title'=>'列表显示字段设置',
				'show'=>array('type',4),
				'add_tip'=>'添加一个数据显示',
				'list'=>array(
					array('type'=>'select','name'=>'id','title'=>'字段标识','options'=>'tables[pagedata.item.table].fields','option_title'=>'name'),
					array('type'=>'select','name'=>'id','title'=>'字段名称','options'=>'tables[pagedata.item.table].fields','option_title'=>'title'),
				),'details'=>array(
					array('type'=>'select','name'=>'id','title'=>'选择字段','options'=>'tables[pagedata.item.table][\'fields\']'),
					array('type'=>'switch','name'=>'sousuo','title'=>'是否作为筛选项'),
				)
			),
			array(
				'type'=>'array',
				'name'=>'edit_fields',
				'title'=>'详情页编辑字段设置',
				'show'=>array('type',4),
				'add_tip'=>'添加一个编辑项',
				'list'=>array(
					array('type'=>'select','name'=>'id','title'=>'字段标识','options'=>'tables[pagedata.item.table].fields','option_title'=>'name'),
					array('type'=>'select','name'=>'id','title'=>'字段名称','options'=>'tables[pagedata.item.table].fields','option_title'=>'title'),
				),'details'=>array(
					array('type'=>'select','name'=>'id','title'=>'选择字段','options'=>'tables[pagedata.item.table][\'fields\']'),
					array('type'=>'string','name'=>'fenlei','title'=>'编辑分类','help'=>'同一个分类的参数会放在统一设置选项卡中'),
					array('type'=>'string','name'=>'help','title'=>'帮助信息','help'=>'用于提示用户输入'),
					array('type'=>'select','name'=>'show','title'=>'关联显示','options'=>'tables[pagedata.item.table][\'fields\']','select_title'=>'不关联','option_value'=>'name','help'=>'设置是否关联其他字段值显示。如果关联，则仅当关联字段为指定值时才显示本编辑项'),
					array('type'=>'string','name'=>'show_data','title'=>'关联字段值','help'=>'填写关联字段关联值，多个值以空格隔开。示例：值1 值2，如果设置多个字段值，标识当关联项值为多个值之一时显示本编辑项'),
				)
			),
		)
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='post'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$post=get_postdata();
	$params['postdata']=base64_encode(json_encode($post));
	$result=cloud_request('plugin.page.post',$params);
	exi($result);
}
if($_RQ['op'] == 'del'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	if($_RQ['id']){
		$params['id']=intval($_RQ['id']);
	}
	if($_RQ['del']){
		$params['del']=trim($_RQ['del']);
	}
	$result=cloud_request('plugin.page.del',$params);
	exi($result);
}